package com.guli.gulimall.product;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.guli.gulimall.product.dao.CategoryDao;
import com.guli.gulimall.product.entity.CategoryEntity;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.io.FileInputStream;
import java.io.InputStream;
import java.util.List;

/**
 * @author By:HDsir
 * @date 2021/12/13
 */
@SpringBootTest
@RunWith(SpringRunner.class)
public class ProductDemo {

    @SuppressWarnings("all")
    @Autowired
    private OSS ossClient;

    @Value("${alibaba.cloud.oss.bucket}")
    private String bucket;

    @Test
    public void ossTest2() {
        try {
            ossClient.putObject(bucket,"bbb.jpg",new FileInputStream("D:\\java\\nginx\\nginx-1.13.12\\html\\img\\applelog.png"));


            System.out.println("上传成功======================");
            ossClient.shutdown();
        }catch (Exception e) {
            e.printStackTrace();
        }
    }

    @SuppressWarnings("all")
    @Autowired
    private CategoryDao categoryDao;

    @Test
    public void ossTest() {
        try {
            // yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1（杭州）为例，Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
            String endpoint = "oss-cn-shanghai.aliyuncs.com";
// 阿里云账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维，请登录RAM控制台创建RAM用户。
            String accessKeyId = "LTAI5tPqMe5EH1BiFXfZsBmK";
            String accessKeySecret = "CAoXpFFouKO7ybXBop2MbhNy6pzbEs";

// 创建OSSClient实例。
            OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

            // 填写本地文件的完整路径。如果未指定本地路径，则默认从示例程序所属项目对应本地路径中上传文件流。
            InputStream inputStream = new FileInputStream("D:\\java\\nginx\\nginx-1.13.12\\html\\img\\applelog.png");
// 依次填写Bucket名称（例如examplebucket）和Object完整路径（例如exampledir/exampleobject.txt）。Object完整路径中不能包含Bucket名称。
            ossClient.putObject("1906a-img", "bbb.jpg", inputStream);

// 关闭OSSClient。
            System.out.println("上传成功======================");
            ossClient.shutdown();
        }catch (Exception e) {
            e.printStackTrace();
        }
    }


    @Test
    public void categoryList() {
        //1、三级分类树
        //1、先查询一级分类 查询二级
        //2、遍历所有的一级分类查询二级
        //3、遍历所有的二级分类查询三级
        QueryWrapper<CategoryEntity> w1 = new QueryWrapper<>();
        //查询一级分类
        w1.eq("parent_cid",0);
        List<CategoryEntity> l1List = categoryDao.selectList(w1);
        for (CategoryEntity l1 : l1List) {
            Long catId = l1.getCatId();
            QueryWrapper<CategoryEntity> w2 = new QueryWrapper<>();
            w2.eq("parent_cid",catId);
            List<CategoryEntity> l2List = categoryDao.selectList(w2);
            l1.setChildren(l2List);
            for (CategoryEntity l2 : l2List) {
                List<CategoryEntity> l3List = categoryDao.selectList(new QueryWrapper<CategoryEntity>().eq("parent_cid",l2.getCatId()));
                l2.setChildren(l3List);
            }
        }
        System.out.println(123);

    }


    @Test
    public void shengdanshu(){
        System.out.println(0100);

    }
}
